require('./utils/index.js')
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');

const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const subjectRouter = require('./routes/subjects');
const fileRouter = require('./routes/file');
const app = express();
const Cache = require('./utils/cache')

/** 设置跨域 */
app.all("*", function (req, res, next) {
	//设置允许跨域的域名，*代表允许任意域名跨域
	res.header("Access-Control-Allow-Origin", "*");
	//允许的header类型
	res.header("Access-Control-Allow-Headers", "content-type");
	//跨域允许的请求方式 
	res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
	if (req.method == 'OPTIONS')
		res.sendStatus(200); //让options尝试请求快速结束
	else
		next();
});


const tokenCheck = require('./midware/token')
const permissionCheck = require('./midware/permission')

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/user', tokenCheck, permissionCheck, usersRouter);
app.use('/subject', tokenCheck, subjectRouter);
app.use('/file', tokenCheck, permissionCheck, fileRouter);

module.exports = app;
